package br.edu.intec.exercicio01.classes;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;

public class ComidaDao {
	
	public List<Comida> findAll() throws Exception{
		
		List<Comida> comidas = new ArrayList<>();
		BufferedReader br = null;
		
		try { 
			
			br = ArquivoUtil.lerArquivo(System.getProperty("user.home")+"/cardapio.txt");
			
			String linha = "";
			while((linha = br.readLine()) != null) {
						
			    String[] itens = linha.split("\\|");
			    
				Comida comida = new Comida();
				comida.setId(Integer.parseInt(itens[0]));
				comida.setDescricao(itens[1]);
				comida.setValor(Double.parseDouble(itens[2]));
				
				comidas.add(comida);					
				
			}
			
			if(linha == null && comidas.isEmpty())
				throw new FileNotFoundException("Sistema Fora do Ar");
			
		} catch(FileNotFoundException e){
			throw new FileNotFoundException(e.getMessage());
		} catch (Exception e) {
			throw new Exception("Erro do Sistema, entrar em contato com o setor de desenvolvimento");
		} finally {
			if(br != null)
				br.close();
		}
		
		return comidas;
		
	}
	
	public String montaRetorno() throws Exception{
		
		StringBuilder sb = new StringBuilder();
		List<Comida> comidas = findAll();
		
		for (Comida comida : comidas) {
			sb.append(comida.getId()+" - "+comida.getDescricao()+"\n");
		}
		
		return sb.toString();
	}

}
